﻿using GalaSoft.MvvmLight;
using SQLite;

namespace DailyPoetryX.Models {
    /// <summary>
    /// 收藏类。
    /// </summary>
    /// <remarks>
    /// 不同于DP，DPX采用了双数据库设计。
    /// Favorite存储于sqlite-net自动生成的数据库中，而Poetry存储于预置的数据库中，因此两者并不能进行表连接。
    /// 这样做的好处是便于后续升级，坏处则是有点麻烦。
    /// </remarks>
    /// <seealso cref="https://github.com/LauXy/DailyPoetry/blob/39b7cb4a4ce683976408b932c4aae105d1c71046/DailyPoetry/Models/KnowledgeModels/FavoriteItem.cs"/>
    public class Favorite : ObservableObject {
        /// <summary>
        /// 主键。
        /// </summary>
        [PrimaryKey]
        public int PoetryId { get; set; }

        /// <summary>
        /// 是否收藏。
        /// </summary>
        public virtual bool IsFavorite {
            get => _isFavorite;
            set => Set(nameof(IsFavorite), ref _isFavorite, value);
        }

        /// <summary>
        /// 是否收藏。
        /// </summary>
        private bool _isFavorite;

        /// <summary>
        /// 时间戳。
        /// </summary>
        public virtual long Timestamp { get; set; }
    }
}